
    <!DOCTYPE html>
    <html lang="zh-CN">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>为什么有了滑动窗口还需要拥塞控制？ - 学习卡片</title>
      <style>
        body { font-family: sans-serif; background-color: #f0f8ff; color: #333; display: flex; flex-direction: column; align-items: center; padding: 50px 20px; }
        .header h1 { font-size: 32px; }
        .grid-container { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; width: 100%; max-width: 1200px; }
        .card-container { perspective: 1200px; cursor: pointer; height: 250px; }
        .card { width: 100%; height: 100%; position: relative; transform-style: preserve-3d; transition: transform 0.7s; border-radius: 16px; box-shadow: 0 4px 16px rgba(0,0,0,0.08); }
        .card-container.flipped .card { transform: rotateY(180deg); }
        .card-face { position: absolute; width: 100%; height: 100%; backface-visibility: hidden; display: flex; flex-direction: column; box-sizing: border-box; border-radius: 16px; background-color: #fff; padding: 24px; }
        .card-back { background-color: #f0fff4; transform: rotateY(180deg); justify-content: space-between; }
        .card-category { font-size: 14px; color: #0052d9; margin-bottom: 8px; font-weight: 500; }
        .card-question { font-size: 20px; font-weight: 500; flex-grow: 1; display: flex; align-items: center; justify-content: center; text-align: center; }
        .card-answer-wrapper { flex-grow: 1; overflow-y: auto; }
        .card-answer { font-size: 15px; line-height: 1.7; }
        .card-footer { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 16px; margin-top: 16px; }
        .card-source { font-size: 13px; color: #8a919f; border-top: 1px solid #f0f0f0; padding-top: 12px; margin-top: 12px; }
      </style>
    </head>
    <body>
      <div class="header">
        <h1>为什么有了滑动窗口还需要拥塞控制？ - 学习卡片</h1>
      </div>
      <div class="grid-container">
        
    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">在TCP协议中，滑动窗口和拥塞控制的核心目标有何不同？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">滑动窗口主要用于流量控制，目标是确保发送端不会超出接收端的处理能力，防止接收端缓冲区溢出。而拥塞控制关注的是网络的整体健康和性能，旨在防止因网络设备（如路由器、交换机）过载而导致的网络拥塞。</div>
          </div>
          <div class="card-source">来源: 1. 流量控制 vs 拥塞控制</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">滑动窗口和拥塞控制在解决问题的范围上有何区别？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">滑动窗口主要解决发送端和接收端之间的点对点流量控制问题。而拥塞控制解决的是因网络负载过重导致的整个网络的拥塞问题，这种问题可能发生在网络中的任何位置（如中间路由器）。</div>
          </div>
          <div class="card-source">来源: 2. 解决不同问题</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">技术</div>
          <div class="card-question">为什么说仅有滑动窗口机制无法解决网络瓶颈问题？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">技术</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">因为滑动窗口机制无法直接缓解由网络中某个路由器或链路带宽有限所导致的瓶颈拥塞问题。它主要关注接收端的处理能力，而不是网络中间节点的容量限制。拥塞控制机制（如慢启动、拥塞避免）才能动态检测并缓解网络瓶颈。</div>
          </div>
          <div class="card-source">来源: 3. 网络瓶颈和容量问题</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">特性</div>
          <div class="card-question">在应对网络负载动态变化时，滑动窗口和拥塞控制机制各有什么特点？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">特性</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">滑动窗口机制对网络负载的变化反应较慢，且无法感知整个网络的负载变化。相比之下，拥塞控制机制可以感知网络负载的变化，并根据实时的网络状态动态调整数据发送策略，从而更有效地应对负载波动。</div>
          </div>
          <div class="card-source">来源: 4. 网络负载变化</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">机制</div>
          <div class="card-question">滑动窗口和拥塞控制分别旨在避免哪种原因导致的数据包丢失？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">机制</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">滑动窗口主要通过处理已接收数据的确认，防止因接收端缓存不足而导致的数据丢失。拥塞控制则通过在检测到拥塞时减少发送速率，来减少因网络拥塞导致的数据包丢失和重传。</div>
          </div>
          <div class="card-source">来源: 5. 避免数据包丢失和重传</div>
        </div>
      </div>
    </div>

    <div class="card-container" onclick="this.classList.toggle('flipped');">
      <div class="card">
        <div class="card-face card-front">
          <div class="card-category">理论</div>
          <div class="card-question">为什么说TCP协议中滑动窗口和拥塞控制两种机制缺一不可？</div>
          <div class="card-footer">点击卡片查看答案</div>
        </div>
        <div class="card-face card-back">
          <div class="card-category">理论</div>
          <div class="card-answer-wrapper">
            <div class="card-answer">因为它们解决的问题不同但互补。即使滑动窗口控制了点对点的数据量，如果网络发生严重拥塞，数据包仍然会丢失。因此，需要拥塞控制来调整整个网络的数据流量，提升网络的稳定性和效率，两者共同工作才能确保TCP的高效和稳定。</div>
          </div>
          <div class="card-source">来源: 6. 综合效果</div>
        </div>
      </div>
    </div>

      </div>
    </body>
    </html>
